using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
using BoOnce.Components;

namespace BoOnce.GameLogic.Entities
{
    abstract class DrawableEntity : Entity
    {
        public int DrawedOrder = 0;

        //private Vector2 _Position;
        //private float _Height;
        //private float _Width;

        //public virtual float Height
        //{
        //    get { return _Height; }
        //}

        //public virtual float Width
        //{
        //    get { return _Width; }
        //}

        //public virtual Vector2 Position
        //{
        //    get
        //    {
        //        return _Position;
        //    }

        //    set
        //    {
        //        _Position = value;
        //    }
        //}

        //public abstract Vector2 Position { get; set;}
        //public abstract float Width { get; set;}
        //public abstract float Height { get; set;}

        private DrawableEntityComponent _DEC;

        private CameraComponent _CameraComponent;

        public DrawableEntityComponent DEC
        {
            get { return _DEC; }
        }

        public CameraComponent Camera
        {
            get
            {
                return _CameraComponent;
            }
        }

        public DrawableEntity()
        {
            _DEC = (DrawableEntityComponent)BaseGame.GetInstance().Services.GetService(typeof(DrawableEntityComponent));
            _CameraComponent = (CameraComponent)BaseGame.GetInstance().Services.GetService(typeof(CameraComponent));
        }

        public abstract void QuickDraw(GameTime gameTime, SpriteBatch spriteBatch);

        public abstract void Update(GameTime gameTime);

        //public virtual void Initialize() { }

    }
}
